package com.gyp.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.gyp.dto.user.*;
import com.gyp.entity.SysMenu;
import com.gyp.entity.SysRole;
import com.gyp.entity.SysUserEntity;
import com.gyp.model.common.PageInfo;
import com.gyp.vo.base.RouterVo;
import com.gyp.vo.base.SysDictData;
import com.gyp.vo.base.UserInfoVO;
import com.gyp.vo.login.Oauth2TokenVO;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletRequest;
import java.util.List;


public interface UserService extends IService<SysUserEntity> {



    void logout(String token);

    List<SysMenu> selectMenuList(SysMenu menu);

    List<SysDictData> selectDictDataByType(String dictType);

    PageInfo<SysRole> selectRoleList(RoleQueryDTO role);

    List<RouterVo> selectMenuTreeByUserId(Integer userId);

    UserInfoVO userInfo();


    Oauth2TokenVO wxChatLogin(String code) throws Exception;

    String getWeChatCode();


    void userRegister(RegisterDTO param);

    Oauth2TokenVO login(LoginDTO param);

    String getUserToken();

    String upload(MultipartFile file);

    String getSignUrl(String objectKey);
}
